home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / vsc92nov.zip / main.h < prev    next >
C/C++ Source or Header  |  1992-11-02  |  2KB  |  82 lines

  1. #ifndef    MAIN_H__
  2. #define    MAIN_H__
  3.  
  4. /*
  5.  *    main.h -- 3.1 Jun  6 17:05:31 1990
  6.  *    Copyright (c) 1986-1990 Axel T. Schreiner
  7.  *
  8.  *    argument standards for C++
  9.  *
  10.  * ident "@(#) main.h (C) Axel T. Schreiner, 1.2"
  11.  */
  12.  
  13. # ifndef _a_2
  14. # include "std-ansi.h"
  15. # endif
  16.  
  17. #define    MAIN    int main _a_2 ((argc, argv), int argc, char * argv[])
  18.  
  19. #define    OPT    while (--argc > 0)                    \
  20.         {   switch (**++argv) {                    \
  21.             _KEY('-')
  22.  
  23. #define    _KEY(ch)    case (ch):                        \
  24.             switch (*++*argv) {                \
  25.             case 0:     --*argv;                \
  26.                     break;                \
  27.             case '-':   if (! (*argv)[1])            \
  28.                     {    ++argv, --argc;            \
  29.                     break;                \
  30.                     }                    \
  31.             default:    do                    \
  32.                     {    switch (**argv) {        \
  33.                     case 0:
  34.  
  35. #define    ARG                    continue;        \
  36.                     case
  37.  
  38. #define    PARM                    if (*++*argv)        \
  39.                             ;            \
  40.                         else if (--argc > 0)    \
  41.                             ++argv;        \
  42.                         else            \
  43.                         {   --*argv, ++argc;    \
  44.                             break;        \
  45.                         }
  46.  
  47. #define    NEXTOPT                    *argv += strlen(*argv) - 1;
  48.  
  49. #define    OTHER                    continue;        \
  50.                     }
  51.  
  52. #define    KEY(ch)                _ENDOPT _KEY(ch)
  53.  
  54. #define    _ENDOPT                } while (*++*argv);            \
  55.                     continue;                \
  56.             }                        \
  57.             break;
  58.  
  59. #define    ENDOPT                _ENDOPT                \
  60.             }                            \
  61.             break;                        \
  62.         }
  63.  
  64. #define    IFANY    if (argc > 1) while (-- argc > 0)            \
  65.         {    static char _any;                \
  66.             if (**++argv == '-'                \
  67.                 && ! _any) switch (*++*argv) {        \
  68.             case 0:        --*argv;            \
  69.                     break;                \
  70.             case '-':    if (! (*argv)[1])        \
  71.                     {    _any = 1;        \
  72.                         continue;        \
  73.                     }                \
  74.             default:    do {                \
  75.                         switch (**argv)
  76.  
  77. #define    ANY                } while (*++*argv);        \
  78.                     continue;            \
  79.                 }
  80.  
  81. #endif
  82.